#ifndef COMMADN_H 
#define COMMADN_H
#include <my_header.h>
#include "logger.h"
#include "file_op.h"

#define MAX_ARGS 10 // 定义最大参数数量

typedef enum {
    CMD_UNKNOWN, // 未知命令的默认值
    CMD_CD,     // 对应 "cd"
    CMD_LS,     // 对应 "ls"
    CMD_PWD,    // 对应 "pwd"
    CMD_PUTS,   // 避免与标准库冲突，改为 "CMD_PUTS"
    CMD_GETS,   // 避免与标准库冲突，改为 "CMD_GETS"
    CMD_RM,
    CMD_MKDIR,
    CMD_RMDIR,
    CMD_SIGNIN,
    CMD_SIGNUP,
    CMD_EXIT
} CommandType;

typedef enum
{
    RESPON_NONE,
    RESPON_OK,
    RESPON_ERROR
} ResponType;

typedef struct train_s {
    int type;
    int length;
    char value[1024];
} train_t;

int validate_and_parse_command(int sockfd, int log_fd);
CommandType get_command_type(const char* input);

void print_files_in_dir(void);

#endif